// 引入mysql模块
const mysql = require('mysql')
// 创建连接池对象
const pool = mysql.createPool({
  host: '127.0.0.1',
  port: '3306',
  user: 'root',
  password: '',
  database: 'hospital',
  connectionLimit: 15,
  // 开启执行多个SQL命令
  multipleStatements: true
})

// 封装执行SQL命令
/**
 * @params
 * sql 要执行的SQL命令，里边可能包含占位符
 * val 要过滤的数据，是一个数组，会替换占位符中的值
 * @returns 
 */
const query = (sql,val=[]) => {
  return new Promise((resolve,reject) => {
    // 从连接池中获取一个连接
    pool.getConnection((err, connection) => {
      // 如果获取失败
      if(err) {
        return reject(err)
      }
      // 可以使用获取到的连接执行SQL命令
      connection.query(sql,val,(err,result) => {
        if(err) {
          return reject(err)
        }
        resolve(result)
        // 释放这个连接
        connection.release()
      })
    })
  })
}

// 暴露连接池对象
module.exports = {
  query
}